<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 区别实例对象与函数对象

        function Demo(name,age){
            this.name = name;
            this.age = age;
        }

        Demo.prototype.fun = function(){
            console.log("Hello World!"+this.name);
        }

        // 实例对象就是new出来的
        const dd = new Demo("qq",20);
        console.log(dd.name, dd.age);
        // 使用方法
        dd.fun();


        // 我们也可以将Demo（）构造函数直接当成一个对象使用
        Demo.info = function(){
            console.log("info");
        }
        // 使用
        Demo.info();

        // 同上代码，如下是采用ES6标准编写

        class Demo2{
            constructor(name,age){
                this.name = name;
                this.age = age;
            }
            fun(){
                console.log("Hello World!"+this.name);
            }
            static info(){
                console.log("info");
            }
        }

        const dd2 = new Demo2("uu",20);
        console.log(dd2.name, dd2.age);
        dd2.fun();
        Demo2.info();
    </script>
</body>
</html>